<template>
  <div id="teaching-site-conflict">
    <div
      class="wrapper-container"
      style="display: flex; flex-direction: column; width: 100%"
    >
      <div class="search-container">
        <div
          class="search-container-left"
          style="justify-content: end; margin-right: 10px"
        >
        <el-button type="primary" size="mini" plain @click="addPlaceInfo">添加场地</el-button>
        <el-button type="warning" size="mini" plain @click="removeTable">移除场地</el-button>
        </div>
      </div>
    </div>

    <div class="assessment-container">
      <div class="table-container">
        <el-table
          :data="tableData"
          border
          class="table-data"
          row-class-name="row-class"
          cell-class-name="cell-class"
          header-row-class-name="header-row-class"
          header-cell-class-name="header-cell-class"
          style="height: calc(100vh - 320px); overflow-y: auto"
          @selection-change="handleSelectionChange"
        >
          <el-table-column type="selection" width="80" align="center">
          </el-table-column>
          <el-table-column prop="cdmc" label="场地名称" align="center">
            <template slot-scope="scope">
              <span class="undeLine" @click="viewCdmc(scope.row)">{{
                scope.row["cdmc"]
              }}</span>
            </template>
          </el-table-column>
          <el-table-column prop="mj" label="面积(平方米)" align="center">
          </el-table-column>
          <el-table-column prop="krnrs" label="容纳人数" align="center">
          </el-table-column>
          <el-table-column prop="cdlx" label="场地类型" align="center">
          </el-table-column>
          <el-table-column
            prop="ssxq"
            label="所在校区"
            align="center"
          ></el-table-column>
          <el-table-column
            prop="ssjzw"
            label="所属建筑物"
            align="center"
          ></el-table-column>
        </el-table>
      </div>
    </div>
    <div class="wrapper-container">
      <div class="bottom-block" style="display: block">
        <div class="text">当前共找到{{total}}条记录,当前显示{{startPage}}-{{endPage}}条</div>
      </div>
      <div class="pagination-block">
        <el-pagination
          prev-text="上一页"
          next-text="下一页"
          :page-size="pageSize"
          layout="prev, pager, next, jumper"
          :total="total"
          @current-change="handleCurrentChange"
          :current-page="currentPage"
        >
        </el-pagination>
      </div>
    </div>

    <el-dialog title="提示" :visible.sync="deletedMessageDialog" width="500px" style="height: 450px;">
      <div class="class-tip">
        您确定删除此信息?
      </div>
      <span slot="footer" class="dialog-footer">
        <el-button type="success" size="mini" plain @click="deletedInfo">确 定</el-button>
        <el-button type="warning" size="mini" plain
          @click="deletedMessageDialog = false"
          style="margin-left: 60px"
        >
          取 消
        </el-button>
      </span>
    </el-dialog>

    <el-dialog
      title="查看场地名称"
      :visible.sync="editTeacherDialog"
      width="1200px"
    >
      <div class="assessment-container" style="width: 100%">
        <div class="table-container" style="width: 100%">
          <el-table
          ref="mul"
            :data="placeTableData"
            border
            class="table-data"
            row-class-name="row-class"
            cell-class-name="cell-class"
            header-row-class-name="header-row-class"
            header-cell-class-name="header-cell-class"
            style="height: 380px; overflow-y: auto"
            @selection-change="handleTableSelect"
          >
            <el-table-column
              prop="cdmc"
              label="场地场所名称"
              align="center"
            >
            </el-table-column>
            <el-table-column prop="mj" label="面积(平方米)" align="center">
            </el-table-column>
            <el-table-column prop="krnrs" label="容纳人数" align="center">
            </el-table-column>
            <el-table-column
              prop="cdlx"
              label="场地场所类型"
              align="center"
            >
            </el-table-column>
            <el-table-column prop="ssxq" label="所属校区" align="center">
            </el-table-column>
            <el-table-column prop="ssjzw" label="所属建筑物" align="center">
            </el-table-column>
            <el-table-column prop="dept" label="管理部门" align="center">
            </el-table-column>
            <el-table-column prop="floor" label="楼层" align="center">
            </el-table-column>
          </el-table>
        </div>
      </div>
      <span slot="footer" class="dialog-footer">
        <el-button type="success" size="mini" plain @click="editTeacherDialog = false">确 定</el-button>
        <el-button
          type="warning"
          size="mini"
          plain
          @click="editTeacherDialog = false"
          style="margin-left: 60px"
        >
          取 消
        </el-button>
      </span>
    </el-dialog>

    <el-dialog
      title="选择教学场地"
      :visible.sync="addPlaceInfoDialog"
      width="1400px"
      style="border: 0px; height: auto;"
      class="jxkzj"
      >
      <select-class-room :source="'dialog'" @savePlaceInfo="savePlaceInfo" @cancelPlaceInfo="cancelPlaceInfo"></select-class-room>
    </el-dialog>
  </div>
</template>

<script>
import {
  reqGetPlaceInfo,
  updateBatchNoConflictRemove,
  jxbgl_data_save,
  updateBatchNoConflictAdd
} from "@/api/trainingManagement/place.js";
import ButtonItem from "@/components/ButtonItem.vue";
import selectClassRoom from "../elective/selectClassRoom.vue";

export default {
  components: {
    ButtonItem,
    selectClassRoom
  },
  data() {
    return {
      total: 0, //总条数
      pageSize: 50, //条数
      startPage: 0, //开始条数
      endPage: 0, //结束条数
      currentPage: 1, //当前页数
      addPlaceInfoDialog: false, //添加场地弹窗
      placeTableData: [],
      editTeacherDialog: false, //调课后教员
      tableData: [],// 表格数据
      deletedMessageDialog: false, //删除课程弹窗
      currentRow: {}, //当前行信息
    };
  },
  created() {},
  mounted() {
      this.queryPlaceInfo();
  },
  methods: {
    // 保存教学场地
    async savePlaceInfo(data) {
      // this.jxcdcsList = data;
      // var data = this.jxcdcsList[0];
      var ids = "";
        data.forEach(item => {
          ids += item.id + ","
        })
        ids = ids.substring(0, ids.length - 1);
      const result = await updateBatchNoConflictAdd(ids);
      // const result = await jxbgl_data_save(data);
      if (result.data.code == 200) {
        this.$message.success("添加成功!");
        this.cancelPlaceInfo();
        this.queryPlaceInfo();
      }

    },
    cancelPlaceInfo() {
      this.addPlaceInfoDialog = false;
    },
      // 查看场地名称
      viewCdmc(row) {
          this.editTeacherDialog = true;
          var dept = row.placeInfoExtend
          this.currentRow = {...row, ...dept};
          this.placeTableData = [this.currentRow];
        //   this.$refs.mul.toggleRowSelection(this.placeTableData[0],true)
      },
    async queryPlaceInfo() {
      var current = this.currentPage;
      var size = this.pageSize;
      const res = await reqGetPlaceInfo(current, size);
      console.log(res.data, "res=======")
      if (res.data.code == 200) {
        this.tableData = res.data.data.records;
        this.total = res.data.data.total;
        var length = this.tableData.length;
        this.calculatePage(
          this.pageSize,
          res.data.data.current, length);
      }
    },
    // 计算开始和结束条数
    calculatePage(pageSize, current, length) {
      if (current == 1) {
        if (length != 0) {
          this.startPage = 1;
          this.endPage = length;
        }
      } else {
        this.startPage = pageSize * (current - 1) + 1;
        this.endPage = parseInt(this.startPage)  + parseInt(length) - 1;
      }
    },
    handleCurrentChange(val) {
      this.currentPage = val;
      this.queryPlaceInfo();
    },
    // 添加场地
    addPlaceInfo() {
      this.addPlaceInfoDialog = true;
    },
    // 移除场地
    removeTable() {
      if (
        this.multipleSelection != undefined &&
        this.multipleSelection != null &&
        this.multipleSelection.length > 0
      ) {
        this.deletedMessageDialog = true;
      } else {
        this.$message.warning("请先选择要移除的数据!");
      }
    },
    // 表格多选
    handleSelectionChange(val) {
      this.multipleSelection = val;
    },
    // 确认删除
    async deletedInfo() {
      console.log(this.multipleSelection, "this.multipleSelection");
      var ids = "";
      this.multipleSelection.forEach(item => {
          ids += item.id + ","
      });
      ids = ids.substring(0, ids.length - 1);

      const result = await updateBatchNoConflictRemove(ids);
      if (result.data.code == 200) {
        this.$message.success("删除成功！");
        this.multipleSelection = [];
        this.deletedMessageDialog = false;
        this.queryPlaceInfo();
      }
    },
  },
  computed: {}, //计算属性
};
</script>
<style lang="less" scoped>
.choose-ypr-container {
  width: 767px;
  margin: 0px auto;
  .choose-ypr-search-container {
    .el-input--prefix .el-input__inner {
      padding-left: 30px;
    }
    .el-input__inner {
      &::placeholder {
        color: #b8b8b8;
      }
      &::-webkit-input-placeholder {
        /* WebKit browsers 适配谷歌 */
        color: #b8b8b8;
      }
      &:-moz-placeholder {
        /* Mozilla Firefox 4 to 18 适配火狐 */
        color: #b8b8b8;
      }
      &::-moz-placeholder {
        /* Mozilla Firefox 19+ 适配火狐 */
        color: #b8b8b8;
      }
      &:-ms-input-placeholder {
        /* Internet Explorer 10+  适配ie*/
        color: #b8b8b8;
      }
    }
    display: flex;
    flex-direction: row;
    align-items: center;
    .title {
      font-size: 18px;
      font-family: Microsoft YaHei;
      font-weight: bold;
      line-height: 20px;
      color: #004ca7;
      margin-right: 5px;
    }

    .button-list {
      display: flex;
      flex-direction: row;
      align-items: center;
      margin-left: 21px;
      .button-item {
        display: flex;
        flex-direction: row;
        align-items: center;
        justify-content: center;
        position: relative;
        width: 69px;
        height: 27px;
        line-height: 27px;
        border: 1px solid #004ca7;
        border-radius: 4px;
        margin-right: 10px;
        text-align: center;
        font-size: 14px;
        font-family: Microsoft YaHei;
        font-weight: 400;
        color: #004ca7;
        .del-icon {
          position: absolute;
          right: 0px;
          top: 0px;
          width: 12px;
          height: 12px;
          padding: 2px;
        }
      }
    }
  }
  .choose-ypr-table-container {
    margin-top: 30px;
    .el-table td,
    .el-table th.is-leaf,
    .el-table--border,
    .el-table--group {
      border-color: #c7d7eb;
    }
    .el-table__header tr,
    .el-table__header th {
      padding: 0;
      height: 57px;
      background-color: #edf2f9;
      font-size: 16px;
      font-family: Microsoft YaHei;
      font-weight: bold;
      line-height: 20px;
      color: #004ca7;
    }
    .el-table__body tr,
    .el-table__body td {
      padding: 0;
      height: 51px;
    }
    .table-data {
      width: 100%;
      border: 0.8px solid #004ca7;
      /*border-radius: 9px;*/
      font-size: 14px;
      font-family: Microsoft YaHei;
      font-weight: 400;
      color: #004ca7;
    }
  }
}
.assessment-container {
  .el-dialog__body {
    height: 251px;
  }
  .el-dialog__footer {
    padding: 10px 20px 45px;
  }
  .el-checkbox__inner:hover {
    border-color: #004ca7;
  }
  .el-checkbox__inner {
    border: 1px solid #004ca7;
    border-radius: 0;
    height: 18px;
    width: 18px;
  }
  .el-checkbox__inner::after {
    height: 10px;
    left: 6px;
  }
  .el-checkbox__input.is-checked .el-checkbox__inner,
  .el-checkbox__input.is-indeterminate .el-checkbox__inner {
    background-color: #004ca7;
    border-color: #004ca7;
  }
  .el-checkbox__input.is-checked + .el-checkbox__label {
    color: #004ca7;
  }
  .el-checkbox.is-bordered.is-checked {
    border-color: #004ca7;
  }
  .el-checkbox__input.is-focus .el-checkbox__inner {
    border-color: #004ca7;
  }
}
</style>
<style lang="less" scoped>
@import "../../../../styles/text.less";
.assessment-container .table-container {
  // overflow: scroll;
}
.assessment-container .table-container .table-header {
  width: 1935px;
}
.assessment-container .table-container .table-body {
  width: 1935px;
}
/deep/ .szjky .el-dialog__body {
  height: 432px;
}
.pagination-block {
  margin-top: 20px;
  display: flex;
  flex-direction: row;
  justify-content: center;
}
</style>
<style lang="less" scoped>
@import "../../../../styles/supervision.less";

.wrapper-container {
  width: 1711px;
  margin: 0 auto;
}

/deep/ .table-container {
  .el-table td,
  .el-table th.is-leaf,
  .el-table--border,
  .el-table--group {
    border-color: #c7d7eb;
  }

  .el-table__header tr,
  .el-table__header th {
    padding: 0;
    height: 76px;
    background-color: #edf2f9;
    font-size: 16px;
    font-family: Microsoft YaHei;
    font-weight: bold;
    line-height: 20px;
    color: #004ca7;
  }

  .el-table__body tr,
  .el-table__body td {
    padding: 0;
    height: 86px;
  }

  .wrapper-button {
    display: flex;
    flex-direction: column;
    align-items: center;

    > div {
      margin-bottom: 8px;
    }
  }
  .table-data {
    width: 100%;
    border: 0.8px solid #004ca7;
    /*border-radius: 9px;*/
    font-size: 14px;
    font-family: Microsoft YaHei;
    font-weight: 400;
    color: #004ca7;
  }
}

.wrapper-container .search-container .search-container-left {
  width: 100%;
  flex-wrap: wrap;
  .search-container-item {
    width: 12%;
    margin-right: 0px;
    .box {
      > span {
        text-align: left;
      }
      display: flex;
      justify-content: space-evenly;
      margin-bottom: 20px;
      align-items: center;
    }
  }
}

/deep/.el-date-editor.el-input {
  width: 110px;
}
/deep/ .el-input--medium {
  width: 110px;
  .el-input__inner {
    height: 28px;
    width: 110px;
    padding: 0px 18px;
  }
}
/deep/ .el-table thead {
  color: #004ca7 !important;
}

.btn {
  margin-top: 271px;
  display: flex;
  justify-content: center;
  align-items: center;
  margin-top: 271px;
  .submit {
    width: 84px;
    height: 27px;
    line-height: 8px;
  }
}
.bottom-block {
  // display: flex;
  flex-direction: row;
  justify-content: space-between !important;
  .export-button {
    width: 127px;
    height: 27px;
    background: #fff6ef;
    border: 1px solid #f3b815;
    border-radius: 4px;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    margin-top: 14px;
    > img {
      width: 17px;
      height: 17px;
    }
    > span {
      margin-left: 12px;
      font-size: 14px;
      font-family: Microsoft YaHei;
      font-weight: 400;
      color: #f3b815;
    }
  }
  .text {
    font-size: 14px;
    font-family: Microsoft YaHei;
    font-weight: 400;
    line-height: 39px;
    color: #004ca7;
  }
}

.search-button {
  width: 77px;
  height: 28px;
  line-height: 28px;
  background: #f1f8fe;
  border: 1px solid #51aef6;
  border-radius: 6px;
  cursor: pointer;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  > span {
    font-size: 16px;
    font-family: Microsoft YaHei;
    font-weight: 400;
    color: #51aef6;
  }
  > img {
    width: 20px;
    height: 20px;
    margin-right: 4px;
  }
}

.mar-lef-2 {
  margin-left: 20px;
}
.undeLine {
  text-decoration: underline;
  cursor: pointer;
  color: #004ca7;
}

.edit-icon {
  font-size: 20px;
  color: #02c86c;
  margin-left: 10px;
  cursor: pointer;
}

.body-manual-container {
  > div:nth-child(1) {
    width: 1200px;
    // height: 785px;
    border: 1px solid rgba(0, 76, 167, 0.8);
    border-radius: 6px;
    margin: 30px auto 0;
    ul {
      list-style: none;
      li {
        border-bottom: 1px solid rgba(0, 76, 167, 0.4);
        height: auto;
        > span {
          box-sizing: border-box;
          display: inline-block;
          font-size: 14px;
          color: rgba(0, 76, 167, 1);
          padding-left: 54px;
          border-right: 1px solid rgba(0, 76, 167, 0.4);
          height: 60px;
          padding-top: 20px;
          vertical-align: middle;
          &:nth-child(n) {
            // width: 357px;
            width: 290px;
          }
          // &:nth-child(2n) {
          // 	width: 444px;
          // }
          &:last-child {
            border-right: none;
          }
          &.active {
            font-size: 16px;
            color: rgba(0, 76, 167, 1);
            font-weight: bold;
            background: rgba(77, 129, 192, 0.1);
            text-align: center;
            padding-left: 0;
          }
          > span {
            color: rgba(255, 56, 25, 1);
          }
          > div {
            width: 100%;
          }
        }
      }
    }
  }
}

.add-icon {
  font-size: 28px;
  color: #f3b815;
  margin-left: 10px;
  cursor: pointer;
}

.date-select {
  height: 100%;
  padding: 0;
  padding-left: 40px;
  overflow-y: auto;
  width: 900px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.date-select-show {
  height: 100%;
  width: 500px;
  display: flex;
  align-items: center;
  flex-direction: row;
  flex-wrap: wrap;
}

.class-tip {
  color: #004ca7;
  font-size: 16px;
  font-weight: bold;
  text-align: center;
  margin: 40px;
}

.tip-text {
  color: #004ca7;
  margin-left: 5px;
  font-size: 16px;
}

/deep/ .xzjy .el-dialog__body {
  padding: 0 !important;
  .wrapper-container {
    width: 100% !important;
  }
  .wrapper-container .search-container .search-container-left {
    margin-left: 20px;
    flex-wrap: wrap;
    .search-container-item {
      width: 200px;
      margin-right: 10px;
      .box {
        > span {
          text-align: left;
          width: 80px;
        }
        display: flex;
        justify-content: space-evenly;
        margin-bottom: 20px;
        align-items: center;
        .el-input--medium .el-input__inner {
          height: 28px;
        }
      }
    }
  }
}

/deep/ .el-tree-node__expand-icon.expanded {
  color: rgb(0, 76, 167);
}

.xzjy .tree {
  padding: 30px;
  color: rgb(0, 76, 167);
  font-weight: bold;
  font-size: 16px;
}

.btn-caozuo {
  display: flex;
  align-items: center;
  justify-content: space-around;
  width: 800px;
  margin: 0 auto;
  padding-top: 50px;
}

.assessment-container {
  width: calc(100% - 20px);
  .table-container {
     width: 100%;
  }
}

.jxkzj {
  /deep/ .el-dialog {
    height: 860px;
  }
}
</style>


<style lang="less" scoped>
  #teaching-site-conflict{
    /deep/ .el-button--warning.is-plain{
      background: #FFF6EF;
      border-color: #F3B815;
      color: #F3B815;
      border-radius: 6px;
    }
    /deep/ .el-button--warning.is-plain:focus, .el-button--warning.is-plain:hover{
      color: #F3B815;
      background: #FFF6EF;
      border: 1px solid #F3B815;
      border-radius: 6px;
    }

    /deep/ .el-button--success.is-plain{
      background: #F1FFF8;
      border-color: #02C86C;
      color: #02C86C;
      border-radius: 6px;
    }
    /deep/ .el-button--success.is-plain:hover{
      background: #F1FFF8;
      border: 1px solid #02C86C;
      color: #02C86C;
      border-radius: 6px;
    }

    /deep/ .el-button--primary.is-plain{
      background: #F1F8FE;
      border-color: #51AEF6;
      color: #51AEF6;
      border-radius: 6px;
    }

    /deep/ .el-button--primary.is-plain:hover{
      background: #F1F8FE;
      border: 1px solid #51AEF6;
      color: #51AEF6;
      border-radius: 6px;
    }

    /deep/ .el-button--danger.is-plain{
      background: #FFEFEF;
      border-color: #FF3819;
      color: #FF3819;
      border-radius: 6px;
    }

    /deep/ .el-button--danger.is-plain:hover{
      background: #FFEFEF;
      border: 1px solid #FF3819;
      color: #FF3819;
      border-radius: 6px;
    }
  }
</style>
